﻿using System;
using Loki.Engine;

namespace Luna.Model.Accounting
{
    public interface IAccountingService : IApplicationService<LunaModel>
    {
        IIndexedEnumerable<IAccountingCategory, Guid> Categories { get; }

        void Save(IAccountingCategory P_Category);

        bool CanDelete(IAccountingCategory P_Category);

        void Delete(IAccountingCategory P_Category);

        IIndexedEnumerable<IAccount, Guid> Accounts { get; }

        void Save(IAccount P_Account);

        bool CanDelete(IAccount P_Account);

        void Delete(IAccount P_Account);

        IIndexedEnumerable<IAccountOperation, Guid> Operations { get; }
    }
}
